# 1.需求：有三个办公室，8位老老师，8位老师随机分配到3个办公室
# 导入随机模块
import  random
# # # 设置个列表存着8位老师
laoshi =['老师1','老师2','老师3','老师4','老师5','老师6','老师7','老师8']
# # 定义空列表
list1 =[[],[],[]]
# # 判断存着老师的列表
for i in laoshi:
    # 定义的空列表中判断随机里没有老师就增加1
    list1[random.randint(0,2)].append(i)
print(list1)

# for i in laoshi:
#     list1[random.randint(1,2)].append(i)
# print(list1)
# for i in laoshi:
#     list1[random.randint(0,2)].append(i)
# print(list1)







# 2、求100以内能被3整除的数，并将作为列表输出  已做完
#获取一个空列表
# list1=[]
# # 循环判断 从0-100的数据
# for i in range(0,100):
#     # 判断能被3整除的数据
#     if i %3==0:
#         #整除后+1,传给i
#         list1.append(i)
# print(list1)
# print(len(list1))
# list1=[]
# for i in range(0,101):
#     if i % 3==0:
#         list1.append(i)
# print(list1)


# 列表推导式
# list2=[i for i in  range(101) if i % 3 ==0]
# print(list2)

# 3、列表[1,2,3,4,3,4,2,5,5,8,9,7],将此列表去重，得到一个唯一元素的列表    #不允许用强制类型转化

# #
# list1=[1,2,3,4,3,4,2,5,5,8,9,7]
#
# # # 获取一个空列表
list2 =[]
#
for i in range(len(list2)):
    if list1[i]not in  list2:
        list2.append(list1[i])
print(list2)

# 第一种
# 判断list1长度
# for i in range(len(list1)):
# # 判断 list1的第一位存在list2里
#     if list1[i] not in list2:
#   # list2就加1数据
#         list2.append(list1[i])
# print(list2)

# 第二种
# 判断list1
# for i in list1:
#     # 判断i里面有数据list2有
#     if i not in list2:
#         # list2就加1
#         list2.append(i)
# print(list2)


# 4、求斐波那契数列 1 1 2 3 5 8 13 ……
# 赋值三个变量
# a, n, b = 0, 0, 1
# #赋值一个空列表
# list_demo = []
# # 循环变量小于7次
# while n < 7:
#     # 空列表加1
#     list_demo.append(b)
#     # 会先算b的前面数加后面数，在算a的前面数加后面数
#     a, b = b, a + b
#     # 变量加1
#     n += 1
# print(list_demo)
# def fum1(a):
#     if a==1 or a==2:
#         return 1
#     else:
#         return fum1(a-1)+fum1(a-2)
# print(fum1(1))
# print(fum1(2))
# print(fum1(3))
# print(fum1(4))

# list1=[1,1]
# for i in range(10):
#     a=list1[i]+list1[i+1]
#     list1.append(a)
# print(list1)




# 方法二
# list3=[1,1]
# # for i in range(10):
# #     a = list3[i]+list3[i+1]
# #     list3.append(a)
# # print(list3)

# 方法三
# list3=[]
# n1=1
# n2=1
# n3=0
# for i in  range(10):
#
#     list3.append(n1)
#     n3=n1+n2
#     n1 = n2
#     n2=n3
# print(list3)

# list1=[1,1]
# for i in range(20):
#     a=list1[i]+list1[i+1]
#     list1.append(a)
# print(list1)


# 5、求100以内的质数（只能被1和它本身整除）
# 方法一
# 赋值一个空列表
# num=[]
# # 赋值一个变量
# i=2
# # 外循环2-100
# for i in range(2,100):
#    #  内循环变量
#    j=2
#    # 内循环2到外循环第一个下标
#    for j in range(2,i):
#       #  判断外循环整除内循环等于0
#       if(i%j==0):
#          #  停止
#          break
#    else:
#       #  循环变量加1
#       num.append(i)
# print(num)
# num=[]
# for i in range(2,100):
#     for j in range(2,i):
#         if (i%j==0):
#             break
#     else:
#         num.append(i)
# print(num)



# 方法二
# list3=[]
# for n in range(2,101):
#     for i in range(2,n):
#         if n % i==0:
#             break
#     else:
#         list3.append(n)
# print(list3)


# list2=[]
# for i in range(2,101):
#     for j in range(2,i):
#         if i % j ==0:
#            break
#     else:
#         list2.append(i)
# print(list2)




# 6、有一堆字符串“aabbbcddef”打印出不重复的字符串结果：cef #不允许用类型转化

str1='aabbbcddef'
str2=''
for  i in str1:
    if str1.count(i)==1:
        str2=str2+i
print(str2)

# 方法二：
# str3=''
# for  i in  str1:
#     if str1.count(i)==1:
#         str3=str3+i
# print(str3)


# str2=''
# for i in  str1:
#     if str1.count(i)==1:
#         str2=str2+i
# print(str2)
#
# 7、有一堆字符串，“welocme to super&Test”，打印出superTest，#不能查字符的索引  已做完，不符合要求
s ='welocme to super&Test'
# list1=s.split(" ")
# print(list1)
# for i in list1:
#     a=i.replace("&",'')
# print(a)


list1=s.split(" ")
print(list1)
for i in list1:
    a=i.replace("&",'')
print(a)



# # 使用分管符
# s=s.split()[2]
# # 使用替换
# print(s.replace('&' ,''))

# 第二种
# list5=s.split(' ')
#
# for i in list5:
#     # print(i)
#     list6=i.split("&")
#     # print(list6)
#     if len(list6)>1:
#         print("".join(list6))

# 8、有一堆字符串，“welocme to super&Test”，打印出tseT&repus ot ……全部单词原位置反转  #不允许用reverse  已做完
wq ='welocme to super&Test'
# str1=list(wq)
# for i in range(len(wq)//2):
#     str1[i],str1[-i-1]=str1[-i-1],str1[i]
# print(''.join(str1))
# # # print(wq[::-1])

# 方法二
# list7=list(wq)
# # print(list7)
# list8=list7[::-1]
# # print(list8)
# print(''.join(list8))

# f方法三
# lis1=list(wq)
# lie2=''
# for i in range(len(lis1)):
#     lie2=lie2+lis1.pop()
# print(lie2)

# 方法四
list4=list(wq)
for i in range(len(wq)//2):
    list4[i],list4[-i-1]=list4[-i-1],list4[i]
print(''.join(list4))


# 9、有一堆字符串，“abcdef”，将首尾反转，结果：fedcba，不能使用现有的函数或方法，自己写算法实现,不允许用步长  已做完，不符合要求
a ="abcdef"
# 类型转换成列表
# p=list(a)
# # 使用逆置
# p.reverse()
# print(p)

# 方法二
list1=list(a)
for  i in range(len(a)//2):
    list1[i],list1[-i-1]=list1[-i-1],list1[i]
print(''.join(list1))

# 10、有一堆字符串，“aabbbcddef”，输出abcdef # 不允许用set   已做完

list1='aabbbcddef'
new=''
for i in list1:
    # 判断新列表中有没有数据
    if i not in  new:
        new+=i
print(new)